package cn.org.xiaoweiba.graduationdesign.bookmall.properties;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 和邮件相关的属性绑定类
 */
@Component
@ConfigurationProperties(prefix = "xwb.mail")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MailProperties {

    /**
     * 邮件默认发送方
     */
    private String defaultFrom;

    /**
     * 邮件默认主题
     */
    private String defaultSubject;

    /**
     * 邮件验证码文本内容，
     * 存在两个参数(%s)需要进行填充(字符串格式化填充)，
     * 第一个参数为验证码；第二个参数为验证码有效时间
     */
    private String codeContent;

    /**
     * HTML 格式的邮件验证码文本内容文件路径，
     * 其中 '{{ code }}' 需要替换为验证码，
     * '{{ expire }}' 需要替换为验证码有效时间
     */
    private String codeContentHTMLPath;

    /**
     * HTML 格式的邮件验证码文本内容中验证码位置
     * 占位模板
     */
    private String codeContentHTMLCodeTemplate;

    /**
     * HTML 格式的邮件验证码文本内容中验证码有效
     * 时间位置占位模板
     */
    private String codeContentHTMLExpireTemplate;

    /**
     * 邮件验证码有效时间，单位秒
     */
    private Long codeExpire;

    /**
     * 再次获取邮箱验证码所需的等待时间，单位秒
     */
    private Long codeAgain;

    /**
     * 邮箱验证码长度
     */
    private Integer codeLength;

}
